import Vue from 'vue';
import Router from 'vue-router';

Vue.use(Router);

import { Lazyload } from 'vant';
Vue.use(Lazyload);

// const home =() => import('@/view/home/home')

const routes = [
  {
    path: '*',
    redirect: '/login'
  },
  {
    name: 'login',
    component: () => import('./view/user/login'),
    meta: {
      title: '用户登录'
    }
  },
  {
    name: 'register',
    component: () => import('./view/user/register'),
    meta: {
      title: '用户注册'
    }
  },
  {
    name: 'home',
    component: () => import('./view/home'),
    meta: {
      title: '首页'
    }
  },
  {
    name: 'goods',
    component: () => import('./view/goods'),
    meta: {
      title: '商品详情',
      // TabbarShow: true  // 控制该页面需不需要显示底部导航栏
    }
  },
  {
    name: 'user',
    component: () => import('./view/user'),
    meta: {
      title: '会员中心',
      // TabbarShow: true
    }
  },
  {
    name: 'cart',
    component: () => import('./view/cart'),
    meta: {
      title: '购物车',
      requiresAuth: true
      // TabbarShow: false
    }
  }
];

// add route path
routes.forEach(route => {
  route.path = route.path || '/' + (route.name || '');
});

const router = new Router({
  mode:'history',
  routes ,
  scrollBehavior:()=>(
       // 期望滚动到哪个的位置
      {x: 0, y: 0}
  )
});

router.beforeEach((to, from, next) => {
  const title = to.meta && to.meta.title;
  if (title) {
    document.title = title;
  }
  next();
});

// 路由守卫
router.beforeEach((to,from,next) => {

    if(to.path==='/login')
           return next();

    const token=window.sessionStorage.getItem('token')

    if(to.meta.requiresAuth == true){ // 需要登录权限进入的路由
        if(!token){                   // 获取不到登录信息
            next({
                path: '/login',
                query: { redirect: to.fullPath }
            })
        }else{                       // 获取到登录信息，进行下一步
            return next();
        }
    }else{                           // 不需要登录权限的路由直接进行下一步
        return next();
    }
})

// router.beforeEach((to, from, next) => {
//   //路由中设置的needLogin字段就在to当中
//   if(sessionStorage.getItem('token')){
//     //console.log(to.path) //每次跳转的路径
//     if(to.path === '/'){
//       //登录状态下 访问login.vue页面 会跳到Home.vue
//       next({path: '/Home'});
//     }else{
//       next();
//     }
//   }else{
//     // 如果没有session ,访问任何页面。都会进入到 登录页
//     if (to.path === '/') { // 如果是登录页面的话，直接next() -->解决注销后的循环执行bug
//       next();
//     } else { // 否则 跳转到登录页面
//       next({ path: '/' });
//     }
//   }
//
//   if (to.meta.title) {
//     document.title = to.meta.title  //设置页面的title
//   }
//
//   if(to.fullPath == "/"){
//     if(sessionStorage.getItem('data')){
//       next({
//         path:from.fullPath
//       });
//     }else {
//       next();
//     }
//   }
// })


export default router
